自动化测试非常重要,因为它在开发应用程序时确保了质量.TDD在编写实现之前执行写入测试。
有关TDD的更多信息,请参阅此前的教程。
测试金字塔:
正如我们可以看到下面的金字塔:
单元测试涵盖了制作坚实基础的大部分金字塔。 单元测试很容易编写。
集成测试确保模块的集成是正确的,并覆盖第二大块金字塔。
功能测试通常描述系统在三部分中所做的并占据最小的部分。
有许多测试工具和框架可以在开发应用程序时使用。 其中一些是由Google提供和支持的,其中一些是第三方。
Android中的测试类型:
单元测试
单元测试主要针对与其他组件隔离的最小功能(如方法,类,组件或小模块)。
用于单元测试的工具:
- JUnit是编写可重复测试的简单框架。 它是单元测试框架的xUnit体系结构的一个实例。
- Robolectric是流行的Android单元测试框架,通过在JVM上运行测试(不需要任何设备或仿真器),可以加快测试的执行速度。
UI测试
UI测试是模拟用户交互的测试,如单击按钮,在EditText中输入文本。 Android Instrumentation是Android系统中的一组“挂钩”,它允许您控制Android组件的生命周期(即自己驱动活动生命周期,而不是由系统驱动这些生命周期)。 这些测试需要运行实际的设备或仿真器。
用于UI测试的工具:
- Espresso - Google提供的Android UI测试框架,可以很好地处理测试同步。
- UIAutomator - Google提供的Android UI测试框架,用于同时测试多个应用程序。
- Robotium - 第三方Android UI测试框架(Robotium vs Espresso)
- Selendroid - Selenium for Android
项目测试目录结构
在我们的项目中,两个文件夹托管我们的测试,这些测试是测试和androidTest。
text:单元测试托管在此文件夹中。 这些测试在JVM上运行,不需要Android设备或模拟器。 这种类型的测试无法访问任何Android框架特定的组件,如上下文。
androidTest: - 所有Instrumentation(Espresso)测试托管在此文件夹中。这些测试需要物理Android设备或模拟器才能运行。
在下一篇文章中,我们将深入探讨遵循和执行单元测试的体系结构。
同时,希望听到有关这方面的建议和意见。
干杯🍻!!!